#include "stdio.h"
#include "stdlib.h"
//#include "conio.h"
#include "unistd.h"

#ifdef __WIN32

#include "time.h"
#include "windows.h"

#define random(num)(rand()%num)
#define randomize() srand((unsigned )time(NULL)) //真随机数 //自己定义初始化随机数发生器函数
#define sleep(x) Sleep(1000*x)
#define clrscr() system("CLS")
#else
//#include "dos.h"
#endif

//随机数函数rand():rand()是在stdlib.h中定义的随机数函数，没有参数，返回0~32767之间的伪随机整数
//每次运行都相同，伪随机数
void test_random_forge()
{
    int x;
    for (int x = 0; x < 10; x++)
    {
        printf("%d ", rand());
    }
    printf("\n");
}

//[0,num)随机数random(num)
//随机数函数random(num)其实是TC在stdlib.h中定义的一个宏，返回0到(num-1)之间的一个随机整数。原型定义如下：
//#define random(num) (rand()%num)
// TC或VC下调用随机函数生成10个0~99之间的随机数
//void test_random_forge_num()
//{
//    for (int i = 0; i < 10; i++)
//    {
//        printf("%d ", random(99));
//    }
//    printf("\n");
//}


/**
 * 设置随机种子randomize()
 * 计算机的随机数一般都是伪随机数，都是以一个固定的整数(一般称之为随机种子)作为初始条件，然后用一定的算法不停迭代产生。若能以随机数作为随机种子，则可以获得真正的随机数。
用于指定随机种子的函数为srand(unsigned)，在stdlib.h中定义。一般用系统时间作为随机种子，TC在stdlib.h中定义了一个宏randomize()就是以系统时间作为随机种子。VC下要自己定义，原型定义如下：
#define randomize() srand((unsigned)time(NULL))
宏定义中用到了时间函数time( )，因此要引用头文件time.h。
 */
//调用随机函数生成10个0~99之间的真随机数
//void test_read_random()
//{
//    randomize();
//    for (int i = 0; i < 10; i++)
//    {
//        printf("%d ", random(100));
//    }
//    printf("\n");
//}

/**
 * 暂停程序执行
 * 暂停执行函数sleep(s)
 * sleep(秒数)函数实现程序暂停执行seconds秒，仅在TC的dos.h头文件中定义，取值范围都是0~65535。函数原型为：
 * void sleep(unsigned seconds);
 * 13.2.2暂停执行函数delay(ms)
 * delay(毫秒数)函数实现程序暂停执行milliseconds毫秒，仅在TC的dos.h头文件中定义，取值范围都是0~65535。函数原型为：
 * void delay(unsigned milliseconds);
 */
/**
 * 延迟函数
 * @param ms
 */
//void delay(int ms)
//{
//    clock_t start_time = clock();
//    while (clock() < start_time + ms);
//}

//void test_sleep_delay()
//{
//    printf("delay(5000)?\n");
//    delay(5000);
//    printf("sleep(5)!\n");
//    sleep(5);
//    printf("press any key to return ...");
//    getchar();
//}

//倒计时
//void count_down()
//{
//    int n = 10;
//    while (n > 0)
//    {
//        printf("倒计时:%d秒", n--);
//        sleep(1);
//        clrscr();
//    }
//}

//键盘接口函数bioskey()
// TC下检测bioskey(0)可输入字符，并输出扫描码和ASCII码，直到按Esc退出


/**
 *
 * @return
 */
//int main13()
//{
//    setvbuf(stdout, NULL, _IONBF, 0); //解决debug时，scanf优于printf捕获的问题
////    test_random_forge();
////    test_random_forge_num();
////    test_read_random();
////    test_sleep_delay();
//    count_down();
//    return 0;
//}